.TH "CREATEUSER" "1" "2003-11-02" "Application" "PostgreSQL Client Applications"
.SH NAME
createuser \- 定义一个新的 PostgreSQL 用户帐户

.SH SYNOPSIS
.sp
\fBcreateuser\fR\fR [ \fR\fB\fIoption\fB\fR...\fB \fR\fR]\fR\fR [ \fR\fB\fIusername\fB \fR\fR]\fR
.SH "DESCRIPTION 描述"
.PP
\fBcreateuser\fR 创建一个新的 PostgreSQL 用户。只有超级用户（在
pg_shadow 表中设置了 usesuper 的用户）可以创建新的 PostgreSQL 用户。 因此，
createuser 必须由某位可以以 PostgreSQL 超级用户连接的用户执行。
.PP
 作为超级用户同时也意味着绕开数据库内访问检查的能力， 因此我们应该少赋予超级用户权限。
.PP
\fBcreateuser\fR 是 SQL 命令 CREATE USER [\fBcreate_user\fR(7)] 的封装。
因此，用那种方法创建新用户都没什么特别的。
.SH "OPTIONS 选项"
.PP
\fBcreateuser\fR 接受下列命令行参数：
.TP
\fB\fIusername\fB\fR
声明要创建的 PostgreSQL 用户名称。 该名称必须在所有 PostgreSQL 用户中唯一。
.TP
\fB-a\fR
.TP
\fB--adduser\fR
允许该新建用户创建其他用户。(注意: 实际上这样做相当于把这个新用户变成了
superuser，只不过这个选项命名得比较烂。)
.TP
\fB-A\fR
.TP
\fB--no-adduser\fR
 不允许该新建用户创建其他用户。 （也就是说，该用户是一个普通用户，不是超级用户）。
.TP
\fB-d\fR
.TP
\fB--createdb\fR
 允许该新建用户创建数据库。
.TP
\fB-D\fR
.TP
\fB--no-createdb\fR
 禁止该新建用户创建数据库。
.TP
\fB-e\fR
.TP
\fB--echo\fR
 回显 createuser 生成的命令并发送给服务器。
.TP
\fB-E\fR
.TP
\fB--encrypted\fR
 对保存在数据库里的用户口令加密。如果没有声明， 则使用缺省值。
.TP
\fB-i \fInumber\fB\fR
.TP
\fB--sysid \fInumber\fB\fR
 允许你给新用户使用非缺省用户标识。这个也不是必须的，但是有些人喜欢这样。
.TP
\fB-N\fR
.TP
\fB--unencrypted\fR
 不对保存在数据库里的用户口令加密。如果没有声明， 则使用缺省值，
.TP
\fB-P\fR
.TP
\fB--pwprompt\fR
 如果给出，createuser 将发出一个提示符要求输入新用户的口令。 如果你不打算用口令认证，那么这是不必要的。
.TP
\fB-q\fR
.TP
\fB--quiet\fR
 不显示响应。
.PP
.PP
 如果没有在命令行上声明名称和其他的一些缺少的信息，脚本会提示你输入。
.PP
\fBcreateuser\fR 还接受下列命令行参数用作连接参数：
.TP
\fB-h \fIhost\fB\fR
.TP
\fB--host \fIhost\fB\fR
 声明运行服务器的机器的主机名。 如果数值以斜扛开头，则它被用做到 Unix 域套接字的路径。
.TP
\fB-p \fIport\fB\fR
.TP
\fB--port \fIport\fB\fR
 声明服务器 正在侦听的互联网 TCP 端口号或本地Unix域套接字的文件扩展（描述符）。
.TP
\fB-U \fIusername\fB\fR
.TP
\fB--username \fIusername\fB\fR
 连接的用户名（不是要创建的用户名）。
.TP
\fB-W\fR
.TP
\fB--password\fR
 强制口令提示（与服务器连接的口令，不是新用户的口令。）
.PP
.SH "ENVIRONMENT 环境"
.TP
\fBPGHOST\fR
.TP
\fBPGPORT\fR
.TP
\fBPGUSER\fR
 缺省连接参数。
.SH "DIAGNOSTICS 诊断"
.PP
 如果出现错误，将会显示后端错误信息。参阅 CREATE USER [\fBcreate_user\fR(7)] 和 \fBpsql\fR(1)  获取可能信息描述。数据库服务器必须在目标主机上运行。 同样，任何 libpq 前端库使用的缺省连接设置和环境变量都将适用。
.SH "EXAMPLES 例子"
.PP
 在缺省数据库服务器上创建一个用户 joe：
.sp
.nf
$ \fBcreateuser joe\fR
Is the new user allowed to create databases? (y/n) \fBn\fR
Shall the new user be allowed to create more new users? (y/n) \fBn\fR
CREATE USER
.sp
.fi
.PP
 用在主机eden上的服务器创建用户 joe，端口是 5000，避免提示并且显示执行的命令：
.sp
.nf
$ \fBcreateuser -p 5000 -h eden -D -A -e joe\fR
CREATE USER "joe" NOCREATEDB NOCREATEUSER
CREATE USER
.sp
.fi
.SH "SEE ALSO 参见"
\fBdropuser\fR(1), CREATE USER [\fBcreate_user\fR(7)]

.SH "译者"
.B Postgresql 中文网站
.B 何伟平 <laser@pgsqldb.org>
